<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class Pembayaran_semua extends CI_Controller {

	function __construct() {
		parent::__construct();
		$this->isLogin();	
		$this->load->model("master/master_set_sekali"); 
		$this->load->model("master/master_set_bulanan"); 
		$this->load->model("master/master_tapel"); 	
		$this->load->model("master/master_siswa"); 
		$this->load->model("master/master_komponen"); 
		$this->load->model("pembayaran_tahunan_model"); 
		$this->load->model("pembayaran_sekali_model");
		$this->load->model("pembayaran_bulanan_model");
		$this->load->model("pembayaran_bebas_model");
		$this->load->model("sms_model");
	}

	function isLogin(){
		$login=$this->session->userdata('isLogin');
		if(! isset($login)||$login != true){
			$this->session->set_flashdata('error_login', 'Untuk Mengakses Admin Anda Harus Login!');
			redirect('login');	
		}
	}
	
	function index(){
		$data['main_view']='pembayaran_semua/view';
		$this->load->view('index',$data);
	}
	
	function view_pembayaran(){
		$data['main_view']='pembayaran_semua/view_pembayaran';
		$nis=$this->input->post('nis');
		$periode_aktif=$this->master_tapel->get_periode_aktif();
		$id_periode_aktif=$periode_aktif['id'];
		//cek nis
		$cek_nis=$this->master_siswa->cek_nis_bayar($nis);
		if($cek_nis==false){
			$this->session->set_flashdata('pesan_error', 'NVA tidak ditemukan');
			redirect('pembayaran_semua');
		}
		$data['detail_siswa']=$this->master_siswa->detail($nis);
		$tapel_aktif=$this->master_tapel->get_tapel_aktif();
		$periode=$this->master_tapel->get_periode_aktif();
		$id_lembaga=$this->session->userdata('id_lembaga');
		$data['list_tahunan']=$this->pembayaran_tahunan_model->get_tagihan_belum_bayar($nis,$tapel_aktif['id_mr_th_ajaran']);
		$tagihan_sekali=$this->pembayaran_sekali_model->get_tagihan_belum_bayar($nis,$data['detail_siswa'][0]->id_tapel_masuk);
		foreach($tagihan_sekali as $key=>$val){
			$dibayar=$this->pembayaran_sekali_model->get_bayar($nis,$val['id_komponen']);
			$tagihan_sekali[$key]['dibayar']=$dibayar;
			$tagihan_sekali[$key]['sisa']=$val['nominal']-$dibayar;
		}

		$list_komp_bulanan=$this->master_set_bulanan->get_detail($data['detail_siswa'][0]->id_tapel_masuk,$data['detail_siswa'][0]->id_lembaga);
		if (isset($list_komp_bulanan)){
			foreach($list_komp_bulanan as $key_komp=>$val_komp){
				$tagihan_bulanan=$this->pembayaran_bulanan_model->get_tagihan_belum_bayar($nis,$val_komp['id_komponen'],$tapel_aktif['id_mr_th_ajaran']);
				$list_komp_bulanan[$key_komp]['tagihan']=$tagihan_bulanan;
				$arr_nominal=array();
				foreach($tagihan_bulanan as $key_bulanan=>$val_bulanan){
					$str_periode=konvert_periode($val_bulanan['periode']);
					if($val_bulanan['id_periode']<=$id_periode_aktif){
						$arr_nominal[]=$val_bulanan['nominal'];
					}
					
					$list_komp_bulanan[$key_komp]['tagihan'][$key_bulanan]['str_periode']=$str_periode;
				}

				$list_komp_bulanan[$key_komp]['denda']=hitung_denda($arr_nominal);
			}
		}
		$data['tagihan_sekali']=$tagihan_sekali;
		$data['periode']=konvert_periode($periode['periode']);
		$data['tapel']=$tapel_aktif;
		$data['list_komp_bulanan']=$list_komp_bulanan;
		$data['nis']=$nis;
		$this->load->view('index',$data);
	}
	
	function proses_pembayaran(){
		//untuk siswa
		$nis=$this->input->post('nis');
		$id_tapel=$this->input->post('id_tapel');
		$detail_siswa=$this->master_siswa->detail($nis);
		$detail_wali=$this->master_siswa->get_detail_wali($nis);
		if(!empty($detail_wali)){
			$nohp_wali=$detail_wali['tlp'];
		}else{
			$nohp_wali="";
		}
		//akhir siswa
		//buat tagihan sekali
		$komponen_sekali=$this->input->post('tagihan_sekali');
		$nominal_sekali=$this->input->post('nominal_sekali');
		$arr_bayar=array();
		$arr_sms=array();
		$total_sekali=0;
		if(!empty($komponen_sekali)){
			$str_tagihan_sekali="Pembayaran Sekali dengan rincian ";
			$str_tagihan_sekali.="<table>";
			foreach($komponen_sekali as $key_sekali=>$val_sekali){
				$angka=str_replace(".","",$nominal_sekali[$key_sekali]);
				$angka=str_replace(",",".",$angka);
				if(($angka!="")&&($angka!="0")){
					$bayar_tagihan=$this->pembayaran_sekali_model->insert_data($id_tapel,$komponen_sekali[$key_sekali],$angka,$nis);
					$arr_bayar[]=array('id_komponen'=>$komponen_sekali[$key_sekali],'nominal'=>$angka);
					//buat tabel
					$str_tagihan_sekali.="<tr>";
					$det_komp=$this->master_komponen->edit($komponen_sekali[$key_sekali]);
					//$str_tagihan_bulanan.="<td>".$det_komp['nama_komp']."</td>";
					$str_tagihan_sekali.="<td>".$det_komp['nama_komp']."</td>";
					$str_tagihan_sekali.="<td>:</td>";
					$str_tagihan_sekali.="<td>Rp.</td>";
					$str_tagihan_sekali.="<td>".number_format($angka,0,",",".")."</td>";
					
					$str_tagihan_sekali.="</tr>";
					
				}
				
				$total_sekali+=$angka;
			}
			$str_tagihan_sekali.="</table>";
			$arr_sms[]=array('komponen'=>'Sekali','nominal'=>$total_sekali);
		}else{
			$str_tagihan_sekali="";
		}
		//echo $str_tagihan_sekali;
		//akhir tagihan sekali
		
		//buat tagihan tahunan
		$id_tahunan=$this->input->post('id_tahunan');
		$id_komp_tahunan=$this->input->post('id_komp_tahunan');
		$nominal_tahunan=$this->input->post('nominal_tahunan');
		$total_tahunan=0;
		if(!empty($id_tahunan)){
			$str_tagihan_tahunan="Pembayaran tahunan dengan rincian ";
			$str_tagihan_tahunan.="<table>";
			foreach($id_tahunan as $key_tahunan=>$val_tahunan){
				$angka=str_replace(".","",$nominal_tahunan[$key_tahunan]);
				$angka=str_replace(",",".",$angka);
				$bayar_tagihan=$this->pembayaran_tahunan_model->bayar_tagihan($val_tahunan);
				$arr_bayar[]=array('id_komponen'=>$id_komp_tahunan[$key_tahunan],'nominal'=>$angka);
				$total_tahunan+=$angka;
				//buat tabel
				$str_tagihan_tahunan.="<tr>";
				$det_komp=$this->master_komponen->edit($id_komp_tahunan[$key_tahunan]);
				//$str_tagihan_bulanan.="<td>".$det_komp['nama_komp']."</td>";
				$str_tagihan_tahunan.="<td>".$det_komp['nama_komp']."</td>";
				$str_tagihan_tahunan.="<td>:</td>";
				$str_tagihan_tahunan.="<td>Rp.</td>";
				$str_tagihan_tahunan.="<td>".number_format($angka,0,",",".")."</td>";
				
				$str_tagihan_tahunan.="</tr>";
			}
			$str_tagihan_tahunan.="</table>";
			$arr_sms[]=array('komponen'=>'Tahunan','nominal'=>$total_tahunan);
		}else{
			$str_tagihan_tahunan="";
		}
		//echo $str_tagihan_tahunan;
		//akhir tagihan tahunan
		
		//buat tagihan bulanan
		$tagihan_bulanan=$this->input->post('tagihan_bulanan');
		$id_komp_bulanan=$this->input->post('id_komp_bulanan');
		$nominal_bulanan=$this->input->post('nominal_bulanan');
		$total_bulanan=0;
		if(!empty($tagihan_bulanan)){
			
			foreach($tagihan_bulanan as $key_bulanan=>$val_bulanan){
				$angka=str_replace(".","",$nominal_bulanan[$key_bulanan]);
				$angka=str_replace(",",".",$angka);
				$bayar_tagihan=$this->pembayaran_bulanan_model->bayar_tagihan($val_bulanan);
				$arr_komp_bulanan[]=array('id_komponen'=>$id_komp_bulanan[$key_bulanan],'nominal'=>$angka);
				$total_bulanan+=$angka;
				
			}
			
			$arr_sms[]=array('komponen'=>'Bulanan','nominal'=>$total_bulanan);
		}
		
		//akhir tagihan bulanan
		
		//buat tagihan bebas
		$id_komp_bebas=$this->input->post('id_komp_bebas');
		$nominal_bebas=$this->input->post('nominal_bebas');
		$total_bebas=0;
		if(!empty($id_komp_bebas)){
			$str_tagihan_bebas="Pembayaran Bebas dengan rincian ";
			$str_tagihan_bebas.="<table>";
			foreach($id_komp_bebas as $key_bebas=>$val_bebas){
				$angka=str_replace(".","",$nominal_bebas[$key_bebas]);
				$angka=str_replace(",",".",$angka);
				if(($angka!="")&&($angka!="0")){
					$bayar_tagihan=$this->pembayaran_bebas_model->insert_data($val_bebas,$angka,$nis);
					$arr_bayar[]=array('id_komponen'=>$id_komp_bebas[$key_bebas],'nominal'=>$angka);
					//buat tabel
					$str_tagihan_bebas.="<tr>";
					$det_komp=$this->master_komponen->edit($id_komp_bebas[$key_bebas]);
					//$str_tagihan_bulanan.="<td>".$det_komp['nama_komp']."</td>";
					$str_tagihan_bebas.="<td>".$det_komp['nama_komp']."</td>";
					$str_tagihan_bebas.="<td>:</td>";
					$str_tagihan_bebas.="<td>Rp.</td>";
					$str_tagihan_bebas.="<td>".number_format($angka,0,",",".")."</td>";
					
					$str_tagihan_bebas.="</tr>";
				}
				$str_tagihan_bebas.="</table>";
				$total_bebas+=$angka;
			}
			$arr_sms[]=array('komponen'=>'Bebas','nominal'=>$total_sekali);
		}else{
			$str_tagihan_bebas="";
		}
		//echo $str_tagihan_bebas;
		
		//akhir tagihan bebas
		$arr_bulan_baru=array();
		if(!empty($arr_komp_bulanan)){
			foreach($arr_komp_bulanan as $key_komp=>$val_komp){
				$arr_bulan_baru[$val_komp['id_komponen']]=0;
			}
		}
		if(!empty($arr_komp_bulanan)){
			foreach($arr_komp_bulanan as $key_komp=>$val_komp){
				$arr_bulan_baru[$val_komp['id_komponen']]+=$val_komp['nominal'];
			}
		}
		if(!empty($arr_bulan_baru)){
			$str_tagihan_bulanan="Pembayaran bulanan dengan rincian ";
			$str_tagihan_bulanan.="<table>";
			foreach($arr_bulan_baru as $key_bulan=>$val_bulan){
				//buat tabel
				$str_tagihan_bulanan.="<tr>";
				$det_komp=$this->master_komponen->edit($key_bulan);
				$str_tagihan_bulanan.="<td>".$det_komp['nama_komp']."</td>";
				$str_tagihan_bulanan.="<td>:</td>";
				$str_tagihan_bulanan.="<td>Rp.</td>";
				$str_tagihan_bulanan.="<td>".number_format($val_bulan,0,",",".")."</td>";
				
				$str_tagihan_bulanan.="</tr>";
				array_push($arr_bayar,array('id_komponen'=>$key_bulan,'nominal'=>$val_bulan));
			}
			$str_tagihan_bulanan.="</table>";
		}else{
			$str_tagihan_bulanan="";
		}		
		
		//pembayaran denda
		$komponen_bulanan=$this->input->post('komponen_bulanan');
		$nominal_denda=$this->input->post('nominal_denda');
		$total_denda=0;
		$id_denda=9;
		$str_denda="";
		if(!empty($komponen_bulanan)){
			foreach($komponen_bulanan as $key_denda=>$val_denda){
				$angka=str_replace(".","",$nominal_denda[$key_denda]);
				$angka=str_replace(",",".",$angka);
				$total_denda+=$angka;
			}
			if($total_denda > 0){
				$bayar_tagihan=$this->pembayaran_bebas_model->insert_data($id_denda,$total_denda,$nis);
				array_push($arr_bayar,array('id_komponen'=>$id_denda,'nominal'=>$total_denda));
				$str_tagihan_denda="Pembayaran Denda dengan rincian ";
				$str_tagihan_denda.="<table>";
				$str_tagihan_denda.="<tr>";
				//$det_komp=$this->master_komponen->edit($key_bulan);
				$str_tagihan_denda.="<td>Denda</td>";
				$str_tagihan_denda.="<td>:</td>";
				$str_tagihan_denda.="<td>Rp.</td>";
				$str_tagihan_denda.="<td>".number_format($total_denda,0,",",".")."</td>";
				
				$str_tagihan_denda.="</tr>";
				$str_tagihan_denda.="</table>";
				$str_denda=" Denda : ".number_format($total_denda,0,",",".");
			}else{
				$str_denda="";
			}
			$arr_sms[]=array('komponen'=>'Denda','nominal'=>$total_denda);
		}

		foreach($arr_sms as $key_sms=>$val_sms){
			if($val_sms['nominal']==0){
				unset($arr_sms[$key_sms]);
			}
		}

		$periode=$this->master_tapel->get_periode_aktif();
		$str_periode=konvert_periode_pendek($periode['periode']);
		$str_sms="";
		if(count($arr_sms)>0){
			$no_sms=1;
			$str_sms="SAF : ".substr($detail_siswa[0]->nm_lengkap,0,20)." telah melakukan pembayaran bulan ".$str_periode." ";
			foreach($arr_sms as $val_sms){
				if(count($arr_sms)==$no_sms){
					$str_sms.=$val_sms['komponen']." : ".number_format($val_sms['nominal'],0,",",".");
				}else{
					$str_sms.=$val_sms['komponen']." : ".number_format($val_sms['nominal'],0,",",".")." , ";
				}
				$no_sms++;
			}
		}
		
		$total_bayar=0;
		foreach($arr_bayar as $key_bayar=>$val_bayar){
			$det_komp=$this->master_komponen->edit($val_bayar['id_komponen']);
			$arr_bayar[$key_bayar]['nama_komponen']=$det_komp['nama_komp'];
			$total_bayar+=$val_bayar['nominal'];
		}

		//kirim email
		$str_email="Terima Kasih Orang Tua Saudara ".$detail_siswa[0]->nm_lengkap." sudah melakukan pembayaran untuk periode ".$str_periode."<br>";
		$str_email .="Berikut adalah Daftar Pembayaran yang sudah Anda lakukan : ";
		$tabel_bayar="<table style='font-family: Arial;font-size: 11px;border-collapse: collapse;'>";
		$tabel_bayar.="<tr><th>No</th><th>Nama Komponen</th><th>Nominal</th></tr>";
		$no=1;
		foreach($arr_bayar as $val_bayar){
			$tabel_bayar.="<tr>";
			$tabel_bayar.="<td>".$no."</td>";
			$tabel_bayar.="<td>".$val_bayar['nama_komponen']."</td>";
			$tabel_bayar.="<td>".number_format($val_bayar['nominal'],0,",",".")."</td>";
			$tabel_bayar.="</tr>";
			$no++;
		}
		$tabel_bayar.="<tr><td colspan='2'>Total</td><td><b>".number_format($total_bayar,0,",",".")."</b></td></tr>";
		$tabel_bayar.="</table>";
		$str_email.=$tabel_bayar."<br /><br />";
		$str_email.="Yayasan Salman Al-Farisi";
		
		//email tagihan baru
		$body = file_get_contents('./template_surat/surat_bayar.html');
		$body=  str_replace('{nama_wali}', isset($detail_wali['nama'])?$detail_wali['nama']:'',$body);
		$body=  str_replace('{nama_lengkap}', isset($detail_siswa[0]->nm_lengkap)?$detail_siswa[0]->nm_lengkap:'',$body);
		$body=  str_replace('{tagihan_bulanan}', isset($str_tagihan_bulanan)?$str_tagihan_bulanan:'',$body);
		$body=  str_replace('{tagihan_tahunan}', isset($str_tagihan_tahunan)?$str_tagihan_tahunan:'',$body);
		$body=  str_replace('{tagihan_sekali}', isset($str_tagihan_sekali)?$str_tagihan_sekali:'',$body);
		$body=  str_replace('{tagihan_bebas}', isset($str_tagihan_bebas)?$str_tagihan_bebas:'',$body);
		$body=  str_replace('{tgl_sekarang}', tgl_indonesia(date('Y-m-d')),$body);
		$body=  str_replace('{nva}', isset($detail_siswa[0]->nis)?$detail_siswa[0]->nis:'',$body);
		$body=  str_replace('{str_periode}', isset($str_periode)?$str_periode:'',$body);
		$detail_kelas=$this->master_siswa->detail_kelas($nis,$id_tapel);
		$body=  str_replace('{sekolah}', isset($detail_kelas['nama_lembaga'])?$detail_kelas['nama_lembaga']:'',$body);
		$body=  str_replace('{kelas}', isset($detail_kelas['kelas'])?$detail_kelas['kelas']:'',$body);
		
		$alamat_email=$detail_siswa[0]->email; 
		//$alamat_email = "dibyo.sudarsono91@gmail.com ";
		if(($alamat_email != "") && (!empty($arr_bayar))){
			$kirim_sms=$this->sms_model->kirim_email($alamat_email,$body);
		}

		//kirim sms terima kasih dan rincian pembayaran
		if(($nohp_wali != "") && ($str_sms!="")){
			$kirim_sms=$this->sms_model->kirim_sms($nohp_wali,$str_sms);
		}
		$this->session->set_flashdata('pesan', 'Pembayaran Sukses Diinput');
		redirect('pembayaran_semua');
	}
	
}
?>